Нет сомнения, что найдётся несколько дюжин программистов, которые воскликнут: «Здорово!» и добровольно согласятся посвятить следующие три года своей жизни такому проекту. Для них не имеет никакого значения, что ни один разумный человек не будет пользоваться такой системой; достаточным оправданием служит сама техническая проблема. Размещение Windows 95, системы распознавания речи и Visual Basic в 4К ROM даст вам право на высшую степень бахвальства перед любым собранием хакеров и программистов; если это именно то, ради чего вы живёте, то вперёд и с песнями.
Ещё одна хорошая мысль – простым нетехническим языком изложить суть проекта своей супруге, родителям или, ещё лучше, детям. Они спросят «ну и что?», не будучи обременёнными никаким искушением вызова, бросаемого технической проблемой. «Ты собираешься угробить свои вечера, выходные и отпуска на два года вперёд только для того, чтобы впихнуть Windows 95 в наручные часы?», – с ужасом спросит ваша супруга. И ваши дети спросят: «Зачем вообще это нужно делать?» Если вы в состоянии ответить на эти вопросы, не чувствуя себя полным идиотом, то можете с чистой совестью участвовать в этом проекте.
Наихудшей разновидностью проекта «покорения Эвереста» является та, где решаемая проблема имеет чрезвычайно важное значение для руководства корпорации, но ровным счётом никакого значения для любого, кто остановится и задумается о ней хотя бы на секунду. «Почему мы должны участвовать в этом безнадёжном проекте, босс?», – невинно спросит молодой программист. «Потому», – ответит босс с праведным негодованием, – «что это увеличит доход нашей корпорации на одну акцию на целых 3,14159 цента!» Это означает, что если программиста вполне удовлетворяет обладание сотней акций своей компании, и если каждый цент из возросших доходов будет выплачен в виде дивидендов, то он получит огромные деньги – целых 3,14 доллара; и, если реакция Уолл-Стрита на успех проекта будет настолько замечательной, что акции подорожают на один доллар, то чистый доход программиста увеличится ещё на какую-нибудь сотню долларов. «И это все, что я буду иметь за тысячи часов сверхурочной работы, босс?», – спросит программист. Но босс будет хранить молчание, потому что честный ответ (и он прекрасно это знает): ничего. Такой проект лишён какой-либо привлекательности, не использует новых технологий, и вероятность его провала – не меньше 75%.
Но, по-моему, ещё хуже тот случай, когда босс умышленно вводит в заблуждение ничего не подозревающую проектную команду, заставляя их поверить, что проект на самом деле сродни покорению Эвереста, в то время как он прекрасно знает, что это не так. Представьте себе, что участник проектной команды спрашивает: «Почему мы должны так стараться, чтобы разработать на КОБОЛе эту пакетную систему резервирования авиабилетов для мэйнфрейма всего за шесть месяцев, босс?» Босс, скорее всего, ответит: «Потому что раньше во всей авиационной индустрии никто даже не пытался сделать это быстрее, чем за три года!» Может быть, это на самом деле серьёзная техническая задача, заслуживающая внимания, но это совсем не та технология, с которой я бы хотел иметь дело в конце 90-х годов. В любом случае, это проект выглядит безнадёжным не из-за решаемой технической проблемы, а из-за смехотворных сроков. Почему же менеджер проекта поступает таким образом? Причины могут быть самыми разными, однако вряд ли всем этим можно будет похвастаться перед своими друзьями год спустя.
1.4.3 Наивность и оптимизм молодости
Наша индустрия достаточно молода, и многие из наиболее претенциозных и вызывающих проектов выполняются и возглавляются людьми, которым нет ещё и 30 лет. Для безнадёжного проекта не ничего необычного, если все технические специалисты в проектной команде моложе 25 лет. Они напоминают мне пилотов-истребителей, призванных в Военно-Воздушные Силы во время Второй Мировой и вьетнамской войн: такие же молодые идеалисты, абсолютно убеждённые, что они могут все. Как отметил David Maxwell:
Проекты подобны вступлению в брак. Поначалу мы наивны и полны надежд, однако со временем реальность вынуждает нас умерить свои надежды. Существует много причин, не имеющих отношения к логике, которые побуждают людей вступать в брак, и то же самое можно сказать о проектах. Поскольку молодые менеджеры и разработчики изо всех сил стремятся проявить себя и проверить свои силы, безнадёжные проекты будут начинаться снова и снова. Мой личный опыт говорит о том, что одни и те же ошибки могут повторяться много раз.
Разумеется, огромная самоуверенность выручает такие команды в ситуациях, когда обычные проектные команды терпят поражение. Тот факт, что наиболее успешные продукты – от Lotus 1-2-3 до Netscape Navigator – были разработаны небольшими командами в условиях, неприемлемых для нормальных людей, уже стал фольклором в нашей индустрии. Когда такие проекты заканчиваются успешно, они приносят проектной команде известность и славу; даже когда они проваливаются, то зачастую позволяют всем участникам извлечь для себя важные уроки (хотя для организации в целом последствия могут быть катастрофическими!).
Важно отметить, что наивность и оптимизм молодости обычно сочетаются с огромной энергией, целеустремлённостью и отсутствием таких помех, как семейные отношения. Безусловно, все это не является прерогативой одной лишь только молодости, однако гораздо чаще можно встретить 22-летнего программиста, который готов и жаждет участвовать в безнадёжном проекте со 100-часовой рабочей неделей в течение года или двух, чем 35-летнего женатого программиста с двумя детьми и весьма умеренной склонностью к покорению горных вершин. Молодой программист, готовый участвовать в безнадёжном проекте, а также относительно молодой менеджер проекта, дающий оптимистические обещания начальству, как бы утверждают: «Разумеется, мы обеспечим успех этого проекта и сокрушим все препятствия на своём пути!»
Мне не хотелось бы высказывать какое-либо серьёзное суждение по этому поводу, потому что это бессмысленно. Как уже было отмечено выше, наша индустрия привлекает молодых, и я не думаю, что ситуация изменится в ближайшие несколько лет. Я также не думаю, что молодёжь может лишиться своего оптимизма, энергии и способности сосредотачиваться на решении проблем. Что касается их наивности …, ничего не поделаешь, эта болезнь проходит только с возрастом.
1.4.4 Альтернатива – безработица
Поскольку мы действительно работаем в индустрии молодых оптимистов, и наша индустрия непрерывно (и временами довольно быстро) развивается по крайней мере последние 30-40 лет, я всегда удивлялся, когда участники безнадёжных проектов приводили мне этот довод.
С другой стороны нужно учитывать, что в таких условиях профессиональные знания довольно быстро обесцениваются. В самом деле, за последнее десятилетие произошли такие огромные изменения, что наша профессия, как и многие другие профессии «белых воротничков», накопила значительный опыт даунсайзинга, реинжиниринга и аутсорсинга. В целом уровень занятости в индустрии ПО постоянно растёт, но при этом не надо забывать, что спрос на программистов С++ растёт быстрее, чем падает спрос на программистов КОБОЛа (правда, мои коллеги напомнили мне, что такой спрос ещё существует в связи с проблемой 2000 года и необходимостью преобразования множества программ, написанных на КОБОЛе. Тем не менее, я уверен, что после 1-го января 2000 года перспективы программистов КОБОЛа существенно ухудшатся). Кроме того, большие IS/IT-организации, которые превратились в огромные бюрократические монстры с тысячами сотрудников, оказались частично подверженными реинжинирингу и даунсайзингу; их высшее руководство может быть не готовым к сокращению технических специалистов, но зачастую сокращает менеджеров среднего звена, администраторов и обслуживающий персонал.
Все это приобретает особое значение в безнадёжных проектах. Вполне возможно, что нехватка людей в проектной команде является следствием общего сокращения штатов разработчиков ПО, предпринятого руководством. И, аналогично, сокращение вдвое срока разработки может быть следствием реинжиниринга под лозунгом: организация должна работать вдвое продуктивнее, чем прежде (что в переводе на командный язык означает «Работать усерднее! Работать быстрее!»). Кстати, эта ситуация гораздо более характерна для Северной Америки, чем для стран Западной Европы, где мне удалось побывать. Только в Северной Америке увлекаются таким «радикальным» реинжинирингом, что масса сотрудников увольняется с работы. По этим же причинам (с учётом культурных традиций, социальной политики и законов) количество безнадёжных проектов в этих странах существенно меньше. Служащие, особенно в Западной Европе, гораздо больше защищены от сверхурочной работы и ревностно отстаивают свои права на отпуск, выходные, личное время и др. Хорошо это или плохо – это тема для отдельного разговора.